#include <stdio.h>
#include <assert.h>
#include <string.h>

void * my_memcpy(void * dest,const void * src,size_t num)
{
    void* ret=dest;
    assert (dest && src);
    while(num--)
    {
        *(char*) dest=*(char*) src;
        dest=(char*)dest+1;
        src=(char*)src+1;
    }
    return ret;
}
// int main ()
// {
//     int arr1[]={1,2,3,4,5,6,7,8};
//     int arr2[]={0,0,0,0,0};
//     my_memcpy (arr1,arr2,12);
//     for (int i=0;i<10;i++)
//         printf ("%d ",arr1[i]);
//     return 0;
// }


void* my_memmove(void * dest,const void * src,size_t num)
{
    void* ret=dest;
    assert (dest && src);
    //目标在源头前面（dest<src),从前往后拷
    if(dest<src)
    {
        while(num--)
        {
            *(char*) dest=*(char*) src;
            dest=(char*)dest+1;
            src=(char*)src+1;
        }
    }
    //目标在源头后面（dest》src),从前往后拷
    else
    {
        while(num--)
            * ((char*) dest+num) = * ((char*) src+num);
    }
    return ret;
}

// int main ()
// {
//     int arr1[]={1,2,3,4,5,6,7,8,9,10};
//     int arr2[]={0,0,0,0,0};
//     my_memmove (arr1+2,arr1,12);
//     for (int i=0;i<10;i++)
//         printf ("%d ",arr1[i]);
//     printf ("\n");
//     return 0;
// }


//判断大小端字节序
// int main ()
// {
//     int a = 1;
//     char* b = (char*)&a;
//     if (*b==1)
//         printf ("小端字节序\n");
//     else
//         printf ("大端字节序\n");
//     return 0;
// }

//模拟实现atoi函数
//将字符串中的数字转化成int型；
//跳过前面的空格，从第一个非空格字符读起；
//若读到的非数字字符，或为空或全是空格，返回0；
//读到的第一个是数字字符，继续往后读直到非数字字符为止；
#include<stdlib.h>
int my_atoi (const char * str)
{
    assert (str);
    int ret=0;
    //跳过前面的空格字符
    while (* str==' ')
        str++;
    //第一个是数字字符
    if(*str>='0' && *str<='9' || *str=='-' || *str=='+')
    {
        int flag=1;
        if (*str=='-')
        {
            flag=-1;
            str++; 
        }
        if (*str=='+')
            str++;
        while (*str>='0' && *str<='9')
        {
            ret=ret*10+ *str-'0';
            str++;
        }
        return ret*flag;
    }
    //其他情况
    else
        return 0;
}

// int main ()
// {
//     char a1[]="";
//     char a2[]="  -123";
//     char a3[]="  wer123";
//     char a4[]="+34fgt  ";
//     char a5[]="e 45  eer";

//     printf ("%d\n",my_atoi (a1));
//     printf ("%d\n",my_atoi (a2));
//     printf ("%d\n",my_atoi (a3));
//     printf ("%d\n",my_atoi (a4));
//     printf ("%d\n",my_atoi (a5));

//     printf ("%d\n",atoi (a1));
//     printf ("%d\n",atoi (a2));
//     printf ("%d\n",atoi (a3));
//     printf ("%d\n",atoi (a4));
//     printf ("%d\n",atoi (a5));
//     return 0;
// }


#include <stdio.h>

//变种水仙花数 - Lily Number：把任意的数字，从中间拆分成两个数字，
//比如1461 可以拆分成（1和461）,（14和61）,（146和1),
//如果所有拆分后的乘积之和等于自身，则是一个Lily Number。
//例如：
// 655 = 6 * 55 + 65 * 5
// 1461 = 1*461 + 14*61 + 146*1
// 求出 5位数中的所有 Lily Number。
// int main() 
// {
//     int a, b, c , i, sum;
//     for (a=10000;a<100000;a++)
//     {
//         sum=0;
//         for (i=10;i<=10000;i*=10)
//         {
//             b=a/i;
//             c=a%i;
//             sum+=b*c;
//         }
//         if (sum==a)
//             printf ("%d ",a);
//     }
//     return 0;
// }

//有一个整数序列（可能有重复的整数），现删除指定的某一个整数，
//输出删除指定数字之后的序列，序列中未被删除数字的前后位置没有发生改变。
int main()
{
    int n,i,m, arr[50];
    scanf ("%d",&n);
    for (i=0;i<n;i++)
        scanf ("%d",&arr[i]);
    scanf ("%d",&m);
    for (i=0;i<n;i++)
    {
        if (arr[i]==m)
        {
            for (int j=i;j<n-1;j++)
                arr[j]=arr[j+1];
        i--;//接着判断覆盖上来的数
        n--;//删除一个就少往后循环一个
        }
    }
    for (i=0;i<n;i++)
        printf ("%d ",arr[i]);
    return 0;
}

